﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>//包含rand函数，用于返回一个伪随机数
/* 随机数的范围是在0~RAND_MAX之间，这个RAND_MAX的⼤⼩是
依赖编译器上实现的，但是⼤部分编译器上是32767 */
#include<time.h>


void menu()
{
	printf(" __________________ \n");
	printf("|                   |\n");
	printf("|  开始游戏请按1    |\n");
	printf("|                   |\n");
	printf("|  结束游戏请按0    |\n");
	printf("|                   |\n");
	printf(" __________________ \n");

}


void game()
{
	int guss = 0;
	int ret = rand() % 100 + 1;
	int count = 5;
	while (count)
	{
		printf("现在你还有%d次机会\n",count);
		printf("请输入要猜的数字：");

		scanf("%d", &guss);

		if (guss > ret)
		{
			printf("猜大了\n");
		}
		else if (guss < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你，猜对了\n");
			break;
		}
		count--;
	}
	if (count == 0)
	{
		printf("很遗憾，你已经用完了五次机会，猜数字失败,随机数是%d\n",ret);
	}
}


int main()
{
	int input = 0;//用来决定游戏的开关
	srand((unsigned int)time(NULL));//通过 srand 函数的参数seed来设置rand函数⽣成随机数的时候的种⼦
	//用时间戳来作为rand函数的基准值
	//这里需要强制转换time，因为srand函数的返回值是unsigned int 类型

	do
	{
		menu();
		printf("请选择游戏的开始或结束:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("游戏结束\n");
			break;
		default:
			printf("选择错误，重新选择\n");
			break;
		}
	} while (input);

	return 0;
}